
/**
		proc
		view
		table
		table function
		function
		index
		trigger
**/
-- for dbdevassist
-- 2020-01-23 23:00:00
-- 注意, 本系统不依赖于objectid, 因为可能会变
-- 本系统只用于中文环境, 但也都用上nvarchar

-- ID
-- 需要配合存储过程处理
DROP TABLE dbo.yt_id
GO
CREATE TABLE dbo.yt_id(
		sID				INT NOT NULL,
		xTableName		NVARCHAR(200) NOT NULL,
		xBeginValue		INT NOT NULL,	-- also default value
		xEndValue		INT NOT NULL,
		xCurrentValue	INT NOT NULL,
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,			-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_id PRIMARY KEY NONCLUSTERED (sID)
)
GO
CREATE CLUSTERED INDEX idx_yt_id_xTableName  ON yt_id(xTableName)
GO
/**
INSERT INTO dbo.yt_id(xTableName, xBeginValue, xEndValue, xCurrentValue, sCreateTime, sLastUpdate, sStatus, sVersion)
VALUES()
GO
**/
-- 每个ID给一千万的取值范围应该够用了
DECLARE @i INT = 0, @j INT = 10000000
WHILE @i < 20
BEGIN
		INSERT INTO dbo.yt_id(sID,xTableName, xBeginValue, xEndValue, xCurrentValue, sCreateTime, sLastUpdate, sStatus, sVersion)
		VALUES(@i + 1, '', @i * @j, @i * @j + @j, @i * @j, GETDATE(), GETDATE(), 2, 1)
		SET @i += 1
END
GO


-- 数据字典
DROP TABLE dbo.yt_dic
GO
CREATE TABLE dbo.yt_dic(
		sID				INT  NOT NULL,
		xField			NVARCHAR(200) NOT NULL,		-- 字段名
		xField2			NVARCHAR(200) NOT NULL,
		xField3			NVARCHAR(200) NOT NULL,
		xName			NVARCHAR(200) NOT NULL,		-- 名称
		xNote			NVARCHAR(MAX) NOT NULL,
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,			-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_dic PRIMARY KEY CLUSTERED (sID)
)
GO

UPDATE dbo.yt_id SET xTableName = 'yt_dic', sLastUpdate = GETDATE(), sStatus = 3, sVersion = 2 WHERE sID = 1
GO
DROP TABLE dbo.yt_dic_item
GO
CREATE TABLE dbo.yt_dic_item(
		mID		INT NOT NULL,
		dID		INT NOT NULL,
		sIndex	INT NOT NULL,
		xValue	INT NOT NULL,			-- 取值
		xName	NVARCHAR(200) NOT NULL,	-- 名称
		xNote	NVARCHAR(MAX) NOT NULL,	-- 说明
		CONSTRAINT pk_yt_dic_item PRIMARY KEY CLUSTERED (mID,dID)
) 
GO




-- proc
DROP TABLE dbo.yt_proc
GO
CREATE TABLE dbo.yt_proc(
		sID				INT  NOT NULL, 		-- 自增主键, 没问题
		xName			NVARCHAR(200) NOT NULL,		-- 存储过程名  -- 这是英文原名,不需要中文名
		xType			INT NOT NULL,				-- 类型. 具体定义待定
		xDesc			NVARCHAR(200) NOT NULL,		-- 描述
		xNote			NVARCHAR(MAX) NOT NULL,		-- 备注
		-- 系统字段
		rAuthor_ID		INT NOT NULL,				-- 创建者
		rOwner_ID		INT NOT NULL,				-- 当前拥有者
		rMender_ID		INT NOT NULL,				-- 提交
		rChecker_ID		INT NOT NULL,				-- 复核
		rAuditor_ID		INT NOT NULL,				-- 审核
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,			-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_proc PRIMARY KEY CLUSTERED (sID)
)
GO
UPDATE dbo.yt_id SET xTableName = 'yt_proc', sLastUpdate = GETDATE(), sStatus = 3, sVersion = 2 WHERE sID = 2
GO

CREATE NONCLUSTERED INDEX idx_yt_proc_xName  ON yt_proc(xName)
GO

-- 参数说明? 譬如, 1=按工作日期, 0按刷卡日期等
DROP TABLE dbo.yt_proc_para
GO
CREATE TABLE dbo.yt_proc_para(
		mID			INT NOT NULL,
		dID			INT NOT NULL,
		sIndex		INT NOT NULL,
		rDic_ID		INT NOT NULL,				-- 关联的数据字典. 如果不关联数据字典, 则是0
		xMainName	NVARCHAR(200) NOT NULL,		-- 存储过程名
		xField		NVARCHAR(200) NOT NULL,		-- 参数名
		xName		NVARCHAR(200) NOT NULL,		-- 存储过程参数中文名
		xDesc		NVARCHAR(200) NOT NULL,		-- 参数描述
		xHint		NVARCHAR(MAX) NOT NULL,		-- 提示
		xNote		NVARCHAR(MAX) NOT NULL,		-- 备注
		rAuthor_ID	INT NOT NULL,				-- 作者
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,		-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_proc_para PRIMARY KEY CLUSTERED (mID, dID)
)

GO

CREATE NONCLUSTERED INDEX idx_yt_proc_para_xMainName  ON yt_proc(xMainName)
GO
DROP TABLE dbo.yt_proc_col
GO
CREATE TABLE dbo.yt_proc_col(
		mID				INT NOT NULL,
		dID				INT NOT NULL,
		sIndex			INT NOT NULL,
		rDic_ID			INT NOT NULL,			-- 关联的数据字典
		xMainName		NVARCHAR(200) NOT NULL,
		xField			NVARCHAR(200) NOT NULL,	-- 列名原名
		xName			NVARCHAR(200) NOT NULL,	-- 列名 中文名
		xType			INT NOT NULL,			-- 类型: 来自数据表, 来自汇总, 来自计算
		xTableName		NVARCHAR(200) NOT NULL,	-- 如果是来自数据表, 则这里是来源表
		xDesc			NVARCHAR(200) NOT NULL,
		xHint			NVARCHAR(MAX) NOT NULL,
		xNote			NVARCHAR(MAX) NOT NULL,
		--
		rAuthor_ID		INT NOT NULL,				-- 作者
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,		-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_proc_col PRIMARY KEY CLUSTERED (mID, dID)
)
GO
CREATE NONCLUSTERED INDEX idx_yt_proc_col_xMainName ON dbo.yt_proc_col(xMainName)

GO


-- 修改历史?! 用触发器实现
DROP TABLE dbo.yt_log
GO

CREATE TABLE dbo.yt_log(
		sID				INT IDENTITY(1, 1),
		xDateTime		DATETIME,
		xTableName		NVARCHAR(200) NOT NULL,
		xField			NVARCHAR(200) NOT NULL,
		xType			INT NOT NULL,		-- 类型 1新增 2修改 3删除
		xPrevious		NVARCHAR(MAX) NOT NULL,
		xNext			NVARCHAR(MAX) NOT NULL,
		CONSTRAINT pk_yt_log  PRIMARY KEY  CLUSTERED (sID)
)

GO



-- view
DROP TABLE dbo.yt_view
GO
CREATE TABLE dbo.yt_view(
		sID				INT  NOT NULL, 		-- 自增主键, 没问题
		xName			NVARCHAR(200) NOT NULL,		-- 视图  -- 这是英文原名,不需要中文名
		xType			INT NOT NULL,				-- 类型. 具体定义待定
		xDesc			NVARCHAR(200) NOT NULL,		-- 描述
		xNote			NVARCHAR(MAX) NOT NULL,		-- 备注
		-- 系统字段
		rAuthor_ID		INT NOT NULL,				-- 创建者
		rOwner_ID		INT NOT NULL,				-- 当前拥有者
		rMender_ID		INT NOT NULL,				-- 提交
		rChecker_ID		INT NOT NULL,				-- 复核
		rAuditor_ID		INT NOT NULL,				-- 审核
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,			-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_view PRIMARY KEY CLUSTERED (sID)
)
GO

UPDATE dbo.yt_id SET xTableName = 'yt_view', sLastUpdate = GETDATE(), sStatus = 3, sVersion = 2 WHERE sID = 3
GO

CREATE NONCLUSTERED INDEX idx_yt_view_xName  ON yt_view(xName)
GO

DROP TABLE dbo.yt_view_col
GO
CREATE TABLE dbo.yt_view_col(
		mID				INT NOT NULL,
		dID				INT NOT NULL,
		sIndex			INT NOT NULL,
		rDic_ID			INT NOT NULL,			-- 关联的数据字典
		xMainName		NVARCHAR(200) NOT NULL,	-- 视图名
		xField			NVARCHAR(200) NOT NULL,	-- 列名原名
		xName			NVARCHAR(200) NOT NULL,	-- 列名 中文名
		xType			INT NOT NULL,			-- 类型: 来自数据表, 来自汇总, 来自计算
		xTableName		NVARCHAR(200) NOT NULL,	-- 如果是来自数据表, 则这里是来源表
		xDesc			NVARCHAR(200) NOT NULL,
		xHint			NVARCHAR(MAX) NOT NULL,
		xNote			NVARCHAR(MAX) NOT NULL,
		--
		rAuthor_ID		INT NOT NULL,				-- 作者
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,		-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_view_col PRIMARY KEY CLUSTERED (mID, dID)
)
GO
CREATE NONCLUSTERED INDEX idx_yt_view_col_xMainName ON dbo.yt_view_col(xMainName)

GO

DROP TABLE dbo.yt_table
GO
CREATE TABLE dbo.yt_table(
		sID				INT  NOT NULL, 		-- 自增主键, 没问题
		xName			NVARCHAR(200) NOT NULL,		-- 数据表  -- 这是英文原名,不需要中文名
		xType			INT NOT NULL,				-- 类型. 具体定义待定
		xDesc			NVARCHAR(200) NOT NULL,		-- 描述
		xNote			NVARCHAR(MAX) NOT NULL,		-- 备注
		-- 系统字段
		rAuthor_ID		INT NOT NULL,				-- 创建者
		rOwner_ID		INT NOT NULL,				-- 当前拥有者
		rMender_ID		INT NOT NULL,				-- 提交
		rChecker_ID		INT NOT NULL,				-- 复核
		rAuditor_ID		INT NOT NULL,				-- 审核
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,			-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_table PRIMARY KEY CLUSTERED (sID)
)
GO

UPDATE dbo.yt_id SET xTableName = 'yt_table', sLastUpdate = GETDATE(), sStatus = 3, sVersion = 2 WHERE sID = 4
GO

CREATE NONCLUSTERED INDEX idx_yt_table_xName  ON yt_table(xName)
GO
DROP TABLE dbo.yt_table_col
GO
CREATE TABLE dbo.yt_table_col(
		mID				INT NOT NULL,
		dID				INT NOT NULL,
		sIndex			INT NOT NULL,
		rDic_ID			INT NOT NULL,			-- 关联的数据字典
		xMainName		NVARCHAR(200) NOT NULL,	-- 
		xField			NVARCHAR(200) NOT NULL,	-- 列名原名
		xName			NVARCHAR(200) NOT NULL,	-- 列名 中文名
		xType			INT NOT NULL,			-- 类型: 来自数据表, 来自汇总, 来自计算
		xTableName		NVARCHAR(200) NOT NULL,	-- 如果是来自数据表, 则这里是来源表
		xDesc			NVARCHAR(200) NOT NULL,
		xHint			NVARCHAR(MAX) NOT NULL,
		xNote			NVARCHAR(MAX) NOT NULL,
		--
		rAuthor_ID		INT NOT NULL,				-- 作者
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,		-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_table_col PRIMARY KEY CLUSTERED (mID, dID)
)
GO
CREATE NONCLUSTERED INDEX idx_yt_table_col_xMainName ON dbo.yt_table_col(xMainName)

GO











-- func  -- 标量函数
DROP TABLE dbo.yt_func
GO
CREATE TABLE dbo.yt_func(
		sID				INT  NOT NULL, 		-- 自增主键, 没问题
		xName			NVARCHAR(200) NOT NULL,		-- 这是英文原名,不需要中文名
		xType			INT NOT NULL,				-- 类型. 具体定义待定
		xDesc			NVARCHAR(200) NOT NULL,		-- 描述
		xNote			NVARCHAR(MAX) NOT NULL,		-- 备注
		-- 系统字段
		rAuthor_ID		INT NOT NULL,				-- 创建者
		rOwner_ID		INT NOT NULL,				-- 当前拥有者
		rMender_ID		INT NOT NULL,				-- 提交
		rChecker_ID		INT NOT NULL,				-- 复核
		rAuditor_ID		INT NOT NULL,				-- 审核
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,			-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_func PRIMARY KEY CLUSTERED (sID)
)
GO
UPDATE dbo.yt_id SET xTableName = 'yt_func', sLastUpdate = GETDATE(), sStatus = 3, sVersion = 2 WHERE sID = 5
GO
CREATE NONCLUSTERED INDEX idx_yt_func_xName  ON yt_func(xName)
GO
DROP TABLE dbo.yt_func_para
GO
CREATE TABLE dbo.yt_func_para(
		mID			INT NOT NULL,
		dID			INT NOT NULL,
		sIndex		INT NOT NULL,
		rDic_ID		INT NOT NULL,				-- 关联的数据字典. 如果不关联数据字典, 则是0
		xMainName	NVARCHAR(200) NOT NULL,		-- 
		xField		NVARCHAR(200) NOT NULL,		-- 参数名
		xName		NVARCHAR(200) NOT NULL,		-- 参数中文名
		xDesc		NVARCHAR(200) NOT NULL,		-- 参数描述
		xHint		NVARCHAR(MAX) NOT NULL,		-- 提示
		xNote		NVARCHAR(MAX) NOT NULL,		-- 备注
		rAuthor_ID	INT NOT NULL,				-- 作者
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,		-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_func_para PRIMARY KEY CLUSTERED (mID, dID)
)

GO

CREATE NONCLUSTERED INDEX idx_yt_func_para_xMainName  ON yt_func(xMainName)
GO
DROP TABLE dbo.yt_func_col
GO
CREATE TABLE dbo.yt_func_col(
		mID				INT NOT NULL,
		dID				INT NOT NULL,
		sIndex			INT NOT NULL,
		rDic_ID			INT NOT NULL,			-- 关联的数据字典
		xMainName		NVARCHAR(200) NOT NULL,
		xField			NVARCHAR(200) NOT NULL,	-- 列名原名
		xName			NVARCHAR(200) NOT NULL,	-- 列名 中文名
		xType			INT NOT NULL,			-- 类型: 来自数据表, 来自汇总, 来自计算
		xTableName		NVARCHAR(200) NOT NULL,	-- 如果是来自数据表, 则这里是来源表
		xDesc			NVARCHAR(200) NOT NULL,
		xHint			NVARCHAR(MAX) NOT NULL,
		xNote			NVARCHAR(MAX) NOT NULL,
		--
		rAuthor_ID		INT NOT NULL,				-- 作者
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,		-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_func_col PRIMARY KEY CLUSTERED (mID, dID)
)
GO
CREATE NONCLUSTERED INDEX idx_yt_func_col_xMainName ON dbo.yt_func_col(xMainName)

GO


-- 表值函数
DROP TABLE dbo.yt_tablefunc
GO

CREATE TABLE dbo.yt_tablefunc(
		sID				INT  NOT NULL, 		-- 自增主键, 没问题
		xName			NVARCHAR(200) NOT NULL,		-- 这是英文原名,不需要中文名
		xType			INT NOT NULL,				-- 类型. 具体定义待定
		xDesc			NVARCHAR(200) NOT NULL,		-- 描述
		xNote			NVARCHAR(MAX) NOT NULL,		-- 备注
		-- 系统字段
		rAuthor_ID		INT NOT NULL,				-- 创建者
		rOwner_ID		INT NOT NULL,				-- 当前拥有者
		rMender_ID		INT NOT NULL,				-- 提交
		rChecker_ID		INT NOT NULL,				-- 复核
		rAuditor_ID		INT NOT NULL,				-- 审核
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,			-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_tablefunc PRIMARY KEY CLUSTERED (sID)
)
GO
UPDATE dbo.yt_id SET xTableName = 'yt_tablefunc', sLastUpdate = GETDATE(), sStatus = 3, sVersion = 2 WHERE sID = 6
GO
CREATE NONCLUSTERED INDEX idx_yt_tablefunc_xName  ON yt_tablefunc(xName)
GO

DROP TABLE dbo.yt_tablefunc_para
GO
CREATE TABLE dbo.yt_tablefunc_para(
		mID			INT NOT NULL,
		dID			INT NOT NULL,
		sIndex		INT NOT NULL,
		rDic_ID		INT NOT NULL,				-- 关联的数据字典. 如果不关联数据字典, 则是0
		xMainName	NVARCHAR(200) NOT NULL,		-- 
		xField		NVARCHAR(200) NOT NULL,		-- 参数名
		xName		NVARCHAR(200) NOT NULL,		-- 参数中文名
		xDesc		NVARCHAR(200) NOT NULL,		-- 参数描述
		xHint		NVARCHAR(MAX) NOT NULL,		-- 提示
		xNote		NVARCHAR(MAX) NOT NULL,		-- 备注
		rAuthor_ID	INT NOT NULL,				-- 作者
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,		-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_tablefunc_para PRIMARY KEY CLUSTERED (mID, dID)
)

GO

CREATE NONCLUSTERED INDEX idx_yt_tablefunc_para_xMainName  ON yt_tablefunc(xMainName)
GO
DROP TABLE dbo.yt_tablefunc_col
GO

CREATE TABLE dbo.yt_tablefunc_col(
		mID				INT NOT NULL,
		dID				INT NOT NULL,
		sIndex			INT NOT NULL,
		rDic_ID			INT NOT NULL,			-- 关联的数据字典
		xMainName		NVARCHAR(200) NOT NULL,
		xField			NVARCHAR(200) NOT NULL,	-- 列名原名
		xName			NVARCHAR(200) NOT NULL,	-- 列名 中文名
		xType			INT NOT NULL,			-- 类型: 来自数据表, 来自汇总, 来自计算
		xTableName		NVARCHAR(200) NOT NULL,	-- 如果是来自数据表, 则这里是来源表
		xDesc			NVARCHAR(200) NOT NULL,
		xHint			NVARCHAR(MAX) NOT NULL,
		xNote			NVARCHAR(MAX) NOT NULL,
		--
		rAuthor_ID		INT NOT NULL,				-- 作者
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,		-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_tablefunc_col PRIMARY KEY CLUSTERED (mID, dID)
)
GO
CREATE NONCLUSTERED INDEX idx_yt_tablefunc_col_xMainName ON dbo.yt_tablefunc_col(xMainName)

GO




-- 索引
DROP TABLE dbo.yt_index
GO

CREATE TABLE dbo.yt_index(
		sID				INT NOT NULL, 		-- 自增主键, 没问题
		xName			NVARCHAR(200) NOT NULL,		-- 这是英文原名,不需要中文名
		xType			INT NOT NULL,				-- 类型. 具体定义待定
		xDesc			NVARCHAR(200) NOT NULL,		-- 描述
		xNote			NVARCHAR(MAX) NOT NULL,		-- 备注
		-- 系统字段
		rAuthor_ID		INT NOT NULL,				-- 创建者
		rOwner_ID		INT NOT NULL,				-- 当前拥有者
		rMender_ID		INT NOT NULL,				-- 提交
		rChecker_ID		INT NOT NULL,				-- 复核
		rAuditor_ID		INT NOT NULL,				-- 审核
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,			-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_index PRIMARY KEY CLUSTERED (sID)
)
GO
UPDATE dbo.yt_id SET xTableName = 'yt_index', sLastUpdate = GETDATE(), sStatus = 3, sVersion = 2 WHERE sID = 7
GO
CREATE NONCLUSTERED INDEX idx_yt_index_xName  ON yt_index(xName)
GO
DROP TABLE dbo.yt_index_col
GO

CREATE TABLE dbo.yt_index_col(
		mID				INT NOT NULL,
		dID				INT NOT NULL,
		sIndex			INT NOT NULL,
		rDic_ID			INT NOT NULL,			-- 关联的数据字典
		xMainName		NVARCHAR(200) NOT NULL,
		xField			NVARCHAR(200) NOT NULL,	-- 列名原名
		xName			NVARCHAR(200) NOT NULL,	-- 列名 中文名
		xType			INT NOT NULL,			-- 类型: 来自数据表, 来自汇总, 来自计算
		xTableName		NVARCHAR(200) NOT NULL,	-- 如果是来自数据表, 则这里是来源表
		xDesc			NVARCHAR(200) NOT NULL,
		xHint			NVARCHAR(MAX) NOT NULL,
		xNote			NVARCHAR(MAX) NOT NULL,
		--
		rAuthor_ID		INT NOT NULL,				-- 作者
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,		-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_index_col PRIMARY KEY CLUSTERED (mID, dID)
)
GO
CREATE NONCLUSTERED INDEX idx_yt_index_col_xMainName ON dbo.yt_index_col(xMainName)

GO





-- 索引
DROP TABLE dbo.yt_trigger
GO

CREATE TABLE dbo.yt_trigger(
		sID				INT NOT NULL, 		-- 自增主键, 没问题
		xName			NVARCHAR(200) NOT NULL,		-- 这是英文原名,不需要中文名
		xType			INT NOT NULL,				-- 类型. 具体定义待定
		xDesc			NVARCHAR(200) NOT NULL,		-- 描述
		xNote			NVARCHAR(MAX) NOT NULL,		-- 备注
		-- 系统字段
		rAuthor_ID		INT NOT NULL,				-- 创建者
		rOwner_ID		INT NOT NULL,				-- 当前拥有者
		rMender_ID		INT NOT NULL,				-- 提交
		rChecker_ID		INT NOT NULL,				-- 复核
		rAuditor_ID		INT NOT NULL,				-- 审核
		sCreateTime		DATETIME NOT NULL,
		sLastUpdate		DATETIME NOT NULL,
		sStatus			TINYINT NOT NULL,			-- 状态 1废弃(锁定), 2编辑, 3提交, 4复核, 5审核(锁定), 6锁定. 锁定时不允许其他人修改,只允许拥有者修改
		sVersion		INT NOT NULL,
		CONSTRAINT pk_yt_trigger PRIMARY KEY CLUSTERED (sID)
)
GO
UPDATE dbo.yt_id SET xTableName = 'yt_trigger', sLastUpdate = GETDATE(), sStatus = 3, sVersion = 2 WHERE sID = 8
GO

CREATE NONCLUSTERED INDEX idx_yt_trigger_xName  ON yt_trigger(xName)
GO




